home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
language
/
turboass.lzh
/
LIBRARYS
/
HEADER.S
< prev
next >
Wrap
Text File
|
1986-02-06
|
1KB
|
27 lines
;************************************************************************
;* Header-Library, Programmrumpf *
;* ©1989 by Σ-soft, written by Markus Fritze 18.06.1988 01:30 *
;************************************************************************
movea.l 4(sp),a6 ;Basepageadresse holen
movea.w #$100+$400,a5 ;Größe der Basepage + Stackgröße (1k)
adda.l 12(a6),a5 ;+ Größe des TEXT-Segments
adda.l 20(a6),a5 ;+ Größe des DATA-Segments
adda.l 28(a6),a5 ;+ Größe des BSS-Segments
move.l a5,d1 ;= Gesamtlänge des Programms
and.w #$FFFE,d1 ;Länge nun gerade
add.l a6,d1 ;+ Programmstart (Basepageadresse)
move.l d1,sp ;Stack endet dort
move.l a5,-(sp) ;Programmlänge
move.l a6,-(sp) ;Adresse der Basepage
move.l #$4A0000,-(sp) ;Funktionsnummer + Dummyword (0)
trap #1 ;Mshrink(0,Basepageadr,Prglänge)
lea 12(sp),sp ;Nur noch den Stack korrigieren
;Das war schon alles. In A6 befindet sich noch die Basepageadresse und in a5
;liegt die totale Programmlänge (TRAP #1 zerstört D0-D2 und A0-A2!)
;Hier kann nun das eigene Programm liegen
clr.w -(sp)
trap #1 ;Pterm ausführen => Programmende